package com.zrrd._12_javaSE_Plus.reflect.no_20;

import java.lang.reflect.Method;

/**
 * @author WanJl
 * @version 1.0
 * @title No_20
 * @description
 * @create 2023/11/18 16:59
 */
public class No_20 {
    /**
     * @param className  类名
     * @param methodName 方法名
     * @return 方法返回值
     * @throws Exception
     */
    public static Object invokeStaticMethod(String className, String methodName) throws Exception {
        //1.获取Class对象
        Class<?> clazz = Class.forName(className);
        //2.获取方法对象
        Method method = clazz.getDeclaredMethod(methodName);
        //3.如果是静态方法的话，执行该方法。如果要执行的方法是静态的方法，那么就为obj传入null作为参数
        return  method.invoke(null);
    }

    public static void main(String[] args) throws Exception {
        Object random = invokeStaticMethod("java.lang.Math", "random");
        System.out.println(random);
    }


}
